web-dev-qa-db-ja.com

ファイルパスからイメージビューを表示しますか?

リソースIDからではなく、ファイル名のみを使用して画像を表示する必要があります。

ImageView imgView = new ImageView(this);
imgView.setBackgroundResource(R.drawable.img1);

画像img1をdrawableフォルダに入れました。ファイルからその画像を見せたいのですが。

これどうやってするの?

277
Alex

リソースがすでにリソースフォルダ内にある場合、Labeebはなぜパスを使用してイメージを設定する必要があるのか​​について正しい、

この種のパスは、画像がSDカードに保存されている場合にのみ必要です。

そして 以下のコードを試して、SDカード内に保存されているファイルからビットマップ画像を設定してください。

File imgFile = new  File("/sdcard/Images/test_image.jpg");

if(imgFile.exists()){

    Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());

    ImageView myImage = (ImageView) findViewById(R.id.imageviewTest);

    myImage.setImageBitmap(myBitmap);

}

そして、この許可をマニフェストファイルに含めます。

<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />
602
Paresh Mayani

これが使えると思います

Bitmap bmImg = BitmapFactory.decodeFile("path of your img1");
imageView.setImageBitmap(bmImg);
48

また使用することができます:



    File imgFile = new  File(“filepath”);
    if(imgFile.exists())
    {
        ImageView myImage = new ImageView(this);
        myImage.setImageURI(Uri.fromFile(imgFile));

    }

これはあなたにとって暗黙のうちにビットマップデコーディングをします。

30
BernhardR
String path = Environment.getExternalStorageDirectory()+ "/Images/test.jpg";

File imgFile = new File(path);
if(imgFile.exists())
{
   Bitmap myBitmap = BitmapFactory.decodeFile(imgFile.getAbsolutePath());
   ImageView imageView=(ImageView)findViewById(R.id.imageView);
  imageView.setImageBitmap(myBitmap);
}
23
user938893

すべての答えは時代遅れです。そのような目的には picasso を使用するのが最善です。背景画像処理を含む多くの機能があります。

私はそれが非常に使いやすいことに言及しました:

Picasso.with(context).load(new File(...)).into(imageView);
21
vedant

公式サイトより: http://developer.Android.com/training/displaying-bitmaps/load-bitmap.html

ImageView image = (ImageView) findViewById(R.id.imagePreview);           
try {
    image.setImageBitmap(decodeSampledBitmap(picFilename));
} catch (Exception e) {
    e.printStackTrace();
}

ここでのメソッド:

    private int calculateInSampleSize(
            BitmapFactory.Options options, int reqWidth, int reqHeight) {
        // Raw height and width of image
        final int height = options.outHeight;
        final int width = options.outWidth;
        int inSampleSize = 1;

        if (height > reqHeight || width > reqWidth) {

            final int halfHeight = height / 2;
            final int halfWidth = width / 2;

            // Calculate the largest inSampleSize value that is a power of 2 and keeps both
            // height and width larger than the requested height and width.
            while ((halfHeight / inSampleSize) > reqHeight
                    && (halfWidth / inSampleSize) > reqWidth) {
                inSampleSize *= 2;
            }
        }

        return inSampleSize;
    }

    private Bitmap decodeSampledBitmap(String pathName,
            int reqWidth, int reqHeight) {

        // First decode with inJustDecodeBounds=true to check dimensions
        final BitmapFactory.Options options = new BitmapFactory.Options();
        options.inJustDecodeBounds = true;
        BitmapFactory.decodeFile(pathName, options);

        // Calculate inSampleSize
        options.inSampleSize = calculateInSampleSize(options, reqWidth, reqHeight);

        // Decode bitmap with inSampleSize set
        options.inJustDecodeBounds = false;
        return BitmapFactory.decodeFile(pathName, options);
    }

//I added this to have a good approximation of the screen size: 
    private Bitmap decodeSampledBitmap(String pathName) {
        Display display = getWindowManager().getDefaultDisplay();
        Point size = new Point();
        display.getSize(size);
        int width = size.x;
        int height = size.y;
        return decodeSampledBitmap(pathName, width, height);
    }   
7
Accollativo

あなたが使用することができます:

ImageView imgView = new ImageView(this);
InputStream is = getClass().getResourceAsStream("/drawable/" + fileName);
imgView.setImageDrawable(Drawable.createFromStream(is, ""));
5
rosa

これを使用して特定のフォルダにアクセスし、特定の画像を取得することができます。

 public void Retrieve(String path, String Name)
   {
    File imageFile = new File(path+Name);

    if(imageFile.exists()){

        Bitmap myBitmap = BitmapFactory.decodeFile(path+Name);
        myImage = (ImageView) findViewById(R.id.savedImage);
        myImage.setImageBitmap(myBitmap);
        Toast.makeText(SaveImage.this, myBitmap.toString(), Toast.LENGTH_LONG).show();

    }
}

それからあなたはそれを呼び出すことができます

Retrieve(Environment.getExternalStorageDirectory().toString()+"/Aqeel/Images/","Image2.PNG");
Toast.makeText(SaveImage.this, "Saved", Toast.LENGTH_LONG).show();
3
Amt87
       public static Bitmap decodeFile(String path) {
    Bitmap b = null;
    File f = new File(path);
    // Decode image size
    BitmapFactory.Options o = new BitmapFactory.Options();
    o.inJustDecodeBounds = true;

    FileInputStream fis = null;
    try {
        fis = new FileInputStream(f);
        BitmapFactory.decodeStream(fis, null, o);
        fis.close();

        int IMAGE_MAX_SIZE = 1024; // maximum dimension limit
        int scale = 1;
        if (o.outHeight > IMAGE_MAX_SIZE || o.outWidth > IMAGE_MAX_SIZE) {
            scale = (int) Math.pow(2, (int) Math.round(Math.log(IMAGE_MAX_SIZE / (double) Math.max(o.outHeight, o.outWidth)) / Math.log(0.5)));
        }

        // Decode with inSampleSize
        BitmapFactory.Options o2 = new BitmapFactory.Options();
        o2.inSampleSize = scale;

        fis = new FileInputStream(f);
        b = BitmapFactory.decodeStream(fis, null, o2);
        fis.close();

    } catch (Exception e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

    return b;
}

public static Bitmap showBitmapFromFile(String file_path)
{
    try {
        File imgFile = new  File(file_path);
        if(imgFile.exists()){

            Bitmap pic_Bitmap = decodeFile(file_path);
            return pic_Bitmap;

        }
    } catch (Exception e) {
        MyLog.e("Exception showBitmapFromFile");
        return null;
    }
    return null;
}   

あなたがリストビューで画像ロードを使っているならば、Aquery概念を使ってください。

https://github.com/AshishPsaini/AqueryExample

     AQuery  aq= new AQuery((Activity) activity, convertView);
            //load image from file, down sample to target width of 250 pixels .gi 
    File file=new File("//pic/path/here/aaaa.jpg");
    if(aq!=null)
    aq.id(holder.pic_imageview).image(file, 250);
3
Ashish Saini

Androidのフォルダパスから画像を表示する方法

まず第一に:あなたがMainfestファイルにアクセス許可を追加することを確認してください:

 <uses-permission Android:name="Android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission Android:name="Android.permission.WRITE_EXTERNAL_STORAGE" />

##:クラスMyGalleryを作る

パブリッククラスMyGalleryはActivityを拡張します{

private GridView gridView;
private String _location;

private String newFolder = "/IslamicGif/";
private String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
private AdView mAdView;
private ArrayList<Bitmap> photo = new ArrayList<Bitmap>();
public static String[] imageFileList;
TextView gallerytxt;

public static ImageAdapter imageAdapter;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.mygallery);
    /*if (MenuClass.mInterstitialAd.isLoaded()) {
        MenuClass.mInterstitialAd.show();
    }*/

    gallerytxt = (TextView) findViewById(R.id.gallerytxt);
    /*gallerytxt.setTextSize(20);
    int[] color = {Color.YELLOW,Color.WHITE};
    float[] position = {0, 1};
    Shader.TileMode tile_mode0= Shader.TileMode.REPEAT; // or TileMode.REPEAT;
    LinearGradient lin_grad0 = new LinearGradient(0, 0, 0, 200,color,position, tile_mode0);
    Shader shader_gradient0 = lin_grad0;
    gallerytxt.getPaint().setShader(shader_gradient0);*/
    ImageButton btn_back = (ImageButton) findViewById(R.id.btn_back);
    btn_back.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            MyGallery.this.finish();
        }
    });


    mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder()
            .build();
    mAdView.loadAd(adRequest);
    gridView = (GridView) findViewById(R.id.gridView);

    new MyGalleryAsy().execute();

    gridView.setOnItemClickListener(new OnItemClickListener() {

        @Override
        public void onItemClick(AdapterView<?> arg0, View arg1, int pos, long arg3) {
            // TODO Auto-generated method stub
            Intent intent = new Intent(MyGallery.this, ImageDetail.class);
            intent.putExtra("ImgUrl", imageFileList[pos]);

            //Toast.makeText(MyGallery.this,"image detail"+pos,Toast.LENGTH_LONG).show();
            startActivity(intent);
        }
    });


}

protected void onStart() {
    super.onStart();
    if (ImageDetail.deleted) {
        photo = new ArrayList<Bitmap>();
        new MyGalleryAsy().execute();
        ImageDetail.deleted = false;
    }

}

public class MyGalleryAsy extends AsyncTask<Void, Void, Void> {
    private ProgressDialog dialog;
    Bitmap mBitmap;

    @Override
    protected void onPreExecute() {
        dialog = ProgressDialog.show(MyGallery.this, "", "Loading ...", true);
        dialog.show();
    }

    @Override
    protected Void doInBackground(Void... arg0) {

        readImage();
        return null;
    }

    @Override
    protected void onPostExecute(Void result) {

        dialog.dismiss();
        DisplayMetrics displayMatrics = new DisplayMetrics();
        getWindowManager().getDefaultDisplay().getMetrics(displayMatrics);
        int screenWidth = displayMatrics.widthPixels / 3;

        if (photo.size() > 0) {
            imageAdapter = new ImageAdapter(MyGallery.this, screenWidth);
            gridView.setAdapter(imageAdapter);
        }

    }

}


private void readImage() {
    // TODO Auto-generated method stub


    try {
        if (isSdPresent()) {
            _location = extStorageDirectory + newFolder;
        } else
            _location = getFilesDir() + newFolder;
        File file1 = new File(_location);

        if (file1.isDirectory()) { // sdCard == true
            imageFileList = file1.list();
            if (imageFileList != null) {
                for (int i = 0; i < imageFileList.length; i++) {
                    try {
                        photo.add(BitmapFactory.decodeFile(_location + imageFileList[i].trim()));
                    } catch (Exception e) {
                        // TODO: handle exception
                        //Toast.makeText(getApplicationContext(), e.toString(),Toast.LENGTH_LONG).show();
                    }
                }
            }
        }
    } catch (Exception e) {
        // TODO: handle exception
    }
}

public static boolean isSdPresent() {
    return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
}

public class ImageAdapter extends BaseAdapter {

    private Context context;
    private LayoutInflater layoutInflater;
    private int width;
    private int mGalleryItemBackground;

    public ImageAdapter(Context c) {
        context = c;

    }

    public ImageAdapter(Context c, int width) {
        context = c;
        this.width = width;
    }

    public int getCount() {
        return photo.size();
    }

    public Object getItem(int position) {
        return null;
    }

    public long getItemId(int position) {
        return 0;
    }

    public View getView(int position, View convertView, ViewGroup parent) {
        View v = convertView;
        layoutInflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
        v = layoutInflater.inflate(R.layout.galleryadapter, null);

        RelativeLayout layout = (RelativeLayout) v.findViewById(R.id.galleryLayout);

        ImageView imageView = new ImageView(context);
        layout.addView(imageView, new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, width));
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);
        layout.setLayoutParams(new GridView.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, width));
        imageView.setImageBitmap(photo.get(position));

        return v;

    }

    public void updateItemList(ArrayList<Bitmap> newItemList) {
        photo = newItemList;
        notifyDataSetChanged();
    }
}

}

そのXmlクラスを作成しましょう

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
Android:background="@drawable/bg"
Android:orientation="vertical">

<RelativeLayout
    Android:id="@+id/relativeLayout"
    Android:layout_width="match_parent"
    Android:layout_height="56dp"
    Android:background="@color/colorPrimary"
    Android:minHeight="?attr/actionBarSize">

    <TextView
        Android:id="@+id/gallerytxt"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_centerHorizontal="true"
        Android:layout_centerVertical="true"
        Android:layout_gravity="center"
        Android:fontFamily="@string/font_fontFamily_medium"
        Android:text="My Gallery"
        Android:textAppearance="?android:attr/textAppearanceMedium"
        Android:textColor="@Android:color/black"
        Android:textStyle="bold" />

    <ImageButton
        Android:id="@+id/btn_back"
        Android:layout_width="wrap_content"
        Android:layout_height="wrap_content"
        Android:layout_alignParentLeft="true"
        Android:layout_alignParentStart="true"
        Android:layout_centerVertical="true"
        Android:layout_marginLeft="12dp"
        Android:background="@drawable/ic_arrow_back_black_24dp" />
</RelativeLayout>


<com.google.Android.gms.ads.AdView
    Android:id="@+id/adView"
    Android:layout_width="match_parent"
    Android:layout_height="wrap_content"
    Android:layout_alignParentBottom="true"
    Android:layout_alignParentLeft="true"
    Android:layout_alignParentStart="true"
    Android:layout_gravity="center|bottom"
    Android:visibility="gone"
    ads:adSize="BANNER"
    ads:adUnitId="@string/banner_id" />

<GridView
    Android:id="@+id/gridView"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_above="@+id/adView"
    Android:layout_alignParentLeft="true"
    Android:layout_alignParentStart="true"
    Android:layout_below="@+id/relativeLayout"
    Android:horizontalSpacing="5dp"
    Android:numColumns="2"
    Android:smoothScrollbar="true"
    Android:verticalSpacing="5dp"></GridView>

アダプタを作成するgalleryadapter.xml

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
Android:layout_width="match_parent"
Android:layout_height="match_parent"
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:orientation="vertical"
Android:id="@+id/galleryLayout"
Android:padding="2dp">

enter image description here

詳細画像を表示するには、新しいクラスImageDetailを作成します。

public class ImageDetail extends Activity implements OnClickListener {
public static InterstitialAd mInterstitialAd;
private ImageView mainImageView;
private LinearLayout menuTop;
private TableLayout menuBottom;
private Boolean onOff = true;
private ImageView delButton, mailButton, shareButton;

private String imgUrl = null;
private AdView mAdView;
TextView titletxt;
private String newFolder = "/IslamicGif/";
private String extStorageDirectory = Environment.getExternalStorageDirectory().toString();
public static boolean deleted = false;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.image_detail);

    mAdView = (AdView) findViewById(R.id.adView);
    AdRequest adRequest = new AdRequest.Builder()
            .build();
    mAdView.loadAd(adRequest);
    mAdView.setAdListener(new AdListener() {
        @Override
        public void onAdLoaded() {
            mAdView.setVisibility(View.VISIBLE);
        }
    });
    mainImageView = (ImageView) findViewById(R.id.mainImageView);
    menuTop = (LinearLayout) findViewById(R.id.menuTop);
    menuBottom = (TableLayout) findViewById(R.id.menuBottom);
    titletxt = (TextView) findViewById(R.id.titletxt);
    titletxt.setTextSize(22);
    mInterstitialAd = new InterstitialAd(this);
    mInterstitialAd.setAdUnitId(getString(R.string.interstial_id));

    mInterstitialAd.setAdListener(new AdListener() {
        @Override
        public void onAdClosed() {
            requestNewInterstitial();

        }
    });
    requestNewInterstitial();
    delButton = (ImageView) findViewById(R.id.delButton);
    mailButton = (ImageView) findViewById(R.id.mailButton);
    shareButton = (ImageView) findViewById(R.id.shareButton);

    Bundle exBundle = getIntent().getExtras();
    if (exBundle != null) {
        imgUrl = exBundle.getString("ImgUrl");
    }
    if (isSdPresent()) {
        imgUrl = extStorageDirectory + newFolder + imgUrl;
    } else
        imgUrl = getFilesDir() + newFolder + imgUrl;

    if (imgUrl != null) {
        GlideDrawableImageViewTarget imageViewTarget = new GlideDrawableImageViewTarget(mainImageView);
        Glide.with(this).load(imgUrl).into(imageViewTarget);

    }


    delButton.setOnClickListener(this);
    mailButton.setOnClickListener(this);
    shareButton.setOnClickListener(this);


}

public static boolean isSdPresent() {
    return Environment.getExternalStorageState().equals(Environment.MEDIA_MOUNTED);
}


@Override
public void onClick(View arg0) {
    // TODO Auto-generated method stub
    switch (arg0.getId()) {
        case R.id.shareButton:
            Image_Link();
            break;
        case R.id.delButton:
            deleted();
            break;
        case R.id.mailButton:
            sendemail();
            break;
        default:
            break;
    }
}

private void sendemail() {

    try {

        File photo = new File(imgUrl);
        Uri imageuri = Uri.fromFile(photo);


        String url = Constant.AppUrl;

        SpannableStringBuilder builder = new SpannableStringBuilder();
        builder.append("Face Placer App Available here..Play Link");
        int start = builder.length();
        builder.append(url);
        int end = builder.length();

        builder.setSpan(new URLSpan(url), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

        Intent emailIntent2 = new Intent(Intent.ACTION_SEND);
        String[] recipients2 = new String[]{"[email protected]", "",};
        emailIntent2.putExtra(Intent.EXTRA_EMAIL, recipients2);
        emailIntent2.putExtra(Intent.EXTRA_SUBJECT, "Sample mail");
        emailIntent2.putExtra(Intent.EXTRA_STREAM, imageuri);
        emailIntent2.putExtra(Intent.EXTRA_TEXT, builder);
        emailIntent2.setType("text/html");
        emailIntent2.setType("image/JPEG");
        startActivity(Intent.createChooser(emailIntent2, "Send mail client :"));

    } catch (Exception e) {
        // TODO: handle exception

        Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
    }
}


private void Image_Link() {

    try {

        File photo = new File(imgUrl);
        Uri imageuri = Uri.fromFile(photo);


        String url = Constant.AppUrl;

        SpannableStringBuilder builder = new SpannableStringBuilder();
        builder.append("Face Placer App Available here..Play Link");
        int start = builder.length();
        builder.append(url);
        int end = builder.length();

        builder.setSpan(new URLSpan(url), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);

        Intent emailIntent2 = new Intent(Intent.ACTION_SEND);
        String[] recipients2 = new String[]{"[email protected]", "",};
        emailIntent2.putExtra(Intent.EXTRA_EMAIL, recipients2);
        emailIntent2.putExtra(Intent.EXTRA_SUBJECT, "Sample mail");
        emailIntent2.putExtra(Intent.EXTRA_STREAM, imageuri);
        emailIntent2.putExtra(Intent.EXTRA_TEXT, builder);
        emailIntent2.setType("text/html");
        emailIntent2.putExtra(Intent.EXTRA_TEXT, "Face Placer App Available here..Play Link " + url);
        emailIntent2.setType("image/JPEG");
        startActivity(Intent.createChooser(emailIntent2, "Send mail client :"));

    } catch (Exception e) {
        // TODO: handle exception

        Toast.makeText(getApplicationContext(), e.toString(), Toast.LENGTH_LONG).show();
    }
}


private void deleted() {
    if (mInterstitialAd.isLoaded()) {
        mInterstitialAd.show();
    }

    AlertDialog.Builder builder = new AlertDialog.Builder(ImageDetail.this);
    builder.setTitle(getString(R.string.removeoption));
    builder.setMessage(getString(R.string.deleteimage));
    builder.setPositiveButton("Yes", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            // User clicked OK button
            dialog.cancel();
            File fileDel = new File(imgUrl);
            boolean isCheck1 = fileDel.delete();

            if (isCheck1) {
                deleted = true;
                finish();
                MyGallery.imageAdapter.notifyDataSetChanged();

            } else {
                Toast.makeText(getApplicationContext(), "error", Toast.LENGTH_LONG).show();
            }
        }
    });

    builder.setNegativeButton("Cancel", new DialogInterface.OnClickListener() {
        public void onClick(DialogInterface dialog, int id) {
            // User clicked OK button
            dialog.cancel();

        }
    });
    Dialog dialog = builder.create();
    dialog.show();


}


private boolean isNetworkConnected() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);
    NetworkInfo ni = cm.getActiveNetworkInfo();
    if (ni == null) {
        // There are no active networks.
        return false;
    } else
        return true;
}

private void requestNewInterstitial() {
    AdRequest adRequest = new AdRequest.Builder()
            .addTestDevice("SEE_YOUR_LOGCAT_TO_GET_YOUR_DEVICE_ID")
            .build();

    mInterstitialAd.loadAd(adRequest);
}

}

そのxml image_detail.xmlを作成します。

<RelativeLayout xmlns:Android="http://schemas.Android.com/apk/res/Android"
xmlns:ads="http://schemas.Android.com/apk/res-auto"
Android:layout_width="fill_parent"
Android:layout_height="fill_parent"
Android:background="@drawable/bg"
Android:orientation="vertical">

<ImageView
    Android:id="@+id/mainImageView"
    Android:layout_width="match_parent"
    Android:layout_height="fill_parent"
    Android:layout_alignParentBottom="true"
    Android:contentDescription="@string/app_name"
    Android:focusable="true"
    Android:focusableInTouchMode="true" />

<LinearLayout
    Android:id="@+id/adlayout"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_centerHorizontal="true"
    Android:orientation="horizontal"
    Android:visibility="gone"></LinearLayout>

<LinearLayout
    Android:id="@+id/menuTop"
    Android:layout_width="fill_parent"
    Android:layout_height="56dp"
    Android:layout_alignWithParentIfMissing="true"
    Android:layout_below="@+id/adlayout"
    Android:background="@color/colorPrimary"
    Android:orientation="vertical"
    Android:padding="10.0dip"
    Android:visibility="visible">

    <TextView
        Android:id="@+id/titletxt"
        Android:layout_width="match_parent"
        Android:layout_height="match_parent"
        Android:gravity="center"
        Android:text="Islamic Gifs"
        Android:textColor="#000000"
        Android:textSize="22sp"
        Android:textStyle="bold" />
</LinearLayout>

<TableLayout
    Android:id="@+id/menuBottom"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_alignParentBottom="true"
    Android:background="@color/colorPrimary"
    Android:padding="10.0dip"
    Android:stretchColumns="*"
    Android:visibility="visible">

    <TableRow>

        <LinearLayout
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:gravity="center_horizontal">

            <ImageView
                Android:id="@+id/mailButton"
                Android:layout_width="52dp"
                Android:layout_height="52dp"
                Android:background="@drawable/selector_shareimage"
                Android:contentDescription="@string/app_name" />
        </LinearLayout>

        <LinearLayout
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:gravity="center_horizontal">

            <ImageView
                Android:id="@+id/shareButton"
                Android:layout_width="52dp"
                Android:layout_height="52dp"
                Android:background="@drawable/selector_shareimage_small"
                Android:contentDescription="@string/app_name" />
        </LinearLayout>

        <LinearLayout
            Android:layout_width="fill_parent"
            Android:layout_height="wrap_content"
            Android:gravity="center_horizontal">

            <ImageView
                Android:id="@+id/delButton"
                Android:layout_width="52dp"
                Android:layout_height="52dp"
                Android:background="@drawable/selector_delete"
                Android:contentDescription="@string/app_name" />
        </LinearLayout>
    </TableRow>
</TableLayout>

<com.google.Android.gms.ads.AdView
    Android:id="@+id/adView"
    Android:layout_width="wrap_content"
    Android:layout_height="wrap_content"
    Android:layout_below="@+id/menuTop"
    Android:layout_centerHorizontal="true"
    Android:visibility="gone"
    ads:adSize="BANNER"
    ads:adUnitId="@string/banner_id"></com.google.Android.gms.ads.AdView>

独自のDrawableをSelectorクラスに追加して、res> drawable> selector_shareimage.xmlを作成します。

<?xml version="1.0" encoding="utf-8"?>
<item Android:drawable="@drawable/result_bt_mail" Android:state_enabled="true" Android:state_pressed="true"/>
<item Android:drawable="@drawable/result_bt_mail" Android:state_enabled="true" Android:state_focused="true"/>
<item Android:drawable="@drawable/result_bt_mail" Android:state_enabled="true" Android:state_selected="true"/>
<item Android:drawable="@drawable/result_bt_mail_s"/>

enter image description here

3
Najaf Ali

onLoadImage全負荷

  private void onLoadImage(final String imagePath) {
    ImageSize targetSize = new ImageSize(imageView.getWidth(), imageView.getHeight()); // result Bitmap will be fit to this size

    //ImageLoader imageLoader = ImageLoader.getInstance(); // Get singleto
    com.nostra13.universalimageloader.core.ImageLoader imageLoader = com.nostra13.universalimageloader.core.ImageLoader.getInstance();
    imageLoader.init(ImageLoaderConfiguration.createDefault(getContext()));


    imageLoader.loadImage(imagePath, targetSize, new SimpleImageLoadingListener() {
        @Override
        public void onLoadingStarted(final String imageUri, View view) {
            super.onLoadingStarted(imageUri, view);

            progress2.setVisibility(View.VISIBLE);


           new Handler().post(new Runnable() {
               public void run() {

                    progress2.setColorSchemeResources(Android.R.color.holo_green_light, Android.R.color.holo_orange_light, Android.R.color.holo_red_light);


                  //  Picasso.with(getContext()).load(imagePath).into(imageView);
                     // Picasso.with(getContext()).load(imagePath) .memoryPolicy(MemoryPolicy.NO_CACHE, MemoryPolicy.NO_STORE).into(imageView);

                    Glide.with(getContext())
                            .load(imagePath)
                            .asBitmap()
                          .into(imageView);

                }
          });

        }



        @Override
        public void onLoadingComplete(String imageUri, View view, Bitmap loadedImage) {
            if(view == null){
                progress2.setVisibility(View.INVISIBLE);

            }

//その他{

            Log.e("onLoadImage","onLoadingComplete");
            //    progress2.setVisibility(View.INVISIBLE);
          //  }
            //  setLoagingCompileImage();
        }

        @Override
        public void onLoadingFailed(String imageUri, View view, FailReason failReason) {
            super.onLoadingFailed(imageUri, view, failReason);

            if(view == null){
                progress2.setVisibility(View.INVISIBLE);

            }

            Log.e("onLoadingFailed",imageUri);

            Log.e("onLoadingFailed",failReason.toString());
        }

        @Override
        public void onLoadingCancelled(String imageUri, View view) {
            super.onLoadingCancelled(imageUri, view);

            if(view == null){
                progress2.setVisibility(View.INVISIBLE);

            }

            Log.e("onLoadImage","onLoadingCancelled");
        }
    });
}
2
Pong Petrung