змена памеру малюнкаў у галерэі для прыкладання апрацоўкі малюнкаў. АНДРОІД

я маю прыкладанне для апрацоўкі малюнкаў, Калі я сфатаграфаваць, выкарыстоўваючы частка прыкладання, якая захоплівае малюнак, малюнак у канчатковым выніку адлюстроўваецца corectly на экране, Гэта таму, што я удакладніў Params камеры, выкарыстоўваючы памер экрана металічных вырабаў, калі я спрабую загрузіць малюнак, якое было прынята з камеры тэлефона (не камера прыкладання), то малюнак занадта вяліка на экране і часам занадта вялікае, з пункту гледжання байта, Як я магу змяніць памер або сціскаць выявы ў галерэі, так што маё прыкладанне можа выкарыстоўваць іх? дзякуй

public class DisplayUndistortedBitmapFromGalleryActivity extends Activity {

    private static final String TAG = "*********DUBFGActivity";
    private Context mContext = this;
    Uri uri;
    private Bitmap mbitmap = null;

    @Override 
    public void onCreate(Bundle savedInstanceState) {
        super,onCreate(savedInstanceState);

        requestWindowFeature(Window,FEATURE_NO_TITLE);
        getWindow(),setFlags(WindowManager,LayoutParams,FLAG_FULLSCREEN,
                WindowManager,LayoutParams,FLAG_FULLSCREEN);


         uri = getIntent(),getData();
        if(uri != null){
            Log,e(TAG, "uri ok");
        }else {
            Log,e(TAG, "uri not ok");
        }


        try {
              mbitmap = Media,getBitmap(getContentResolver(), uri);
             //setMbitmap(bitmap);
        } catch (FileNotFoundException e) {
           //TODO Auto-generated catch block
            e,printStackTrace();
        } catch (IOException e) {
           //TODO Auto-generated catch block
            e,printStackTrace();
        }

        if(mbitmap == null){
            Log,e(TAG,"mbitmap is null");
        }else{
            Log,e(TAG,"mbitmap is not null");
        }

,

public class DisplayUndistortedBitmapFromGallery extends View{





    public DisplayUndistortedBitmapFromGallery(Context context) {
        super(context);

    }





    public DisplayUndistortedBitmapFromGallery(Context context, AttributeSet attr) {
        super(context,attr);
        Log,e(TAG, "++++++++++ inside dubfgview constructor");





       Bitmap bm = ((DisplayUndistortedBitmapFromGalleryActivity)getContext()),getMbitmap();

        if(bm == null){
            Log,e(TAG, "bm = null");
        }else{
            Log,e(TAG, "bm =  not null");
        }


        bgr = bm,copy(bm,getConfig(), true);
0

1 адказы

Калі я правільна разумею ваша пытанне ёсць дзве праблемы. Першае, што ImageView ня маштабавання малюнка па памеры экрана і другі ў тым, што растравыя выявы патрабуюць занадта шмат аператыўнай памяці.

Каб вырашыць першую праблему проста скажыце выгляд малюнка, як вы хочаце, каб малюнак маштабуецца. Проста выканайце наступныя дзеянні:

imgView.setScaleType(ImageView.ScaleType.INSERT_SCALE_TYPE);

Here is a list of the different scale types.

Калі гэта не вырашае праблему пераканайцеся, што межы вашага ImageView не надта вялікія. Паспрабуйце жорстка прапісваць памер ImageView нешта канкрэтнае і паглядзець, калі гэта выпраўляе праблему.

Другая праблема, на самай справе лёгка выправіць. Вам проста трэба сказаць BitmapFactory , каб дэкадуе малюнак пры яго загрузцы. Вось прыклад:

int inSample = 4;//specifies how many 1/N samples to keep, in this case 1/4 off all samples are kept 

opts = new BitmapFactory.Options();
opts.inSampleSize = inSample;

Bitmap b = BitmapFactory.decodeResource(c.getResources(), imgResId, opts);

For a more longer explanation see my answer to this question: Android GalleryView Recycling

1
дададзена
прывітанне там, я ўжо абнавіў свой пост так і можна ўбачыць фрагмент кода.
дададзена аўтар turtleboy, крыніца
Прывітанне, у мяне няма ImageView хутчэй карыстацкі клас выгляду. гэта робіць розніцу ў дапамогу вы дае?
дададзена аўтар turtleboy, крыніца
@turtleboy толькі ў адносінах да imgView.setScaleType() метаду. Іншы матэрыял па-ранейшаму можа быць аднолькавым.
дададзена аўтар slayton, крыніца